package mysql8学习.高级.第19章_数据库备份与恢复;

/**
 * 4.物理备份:直接复制整个数据库
 *
 * 直接将MySQL中的数据库文件复制出来。这种方法最简单，速度也最快。
 * MySQL的数据库目录位置不一定相同:
 *   ●在Windows平台下，MySQL 8.0存放数据库的目录通常默认为
 *    “C:\ProgramData\MySQL\MySQL Server8.0\Data”或者其他用户自定义目录;
 *   ●在Linux平台下, 数据库目录位置通常为/var/lib/mysql/;
 *   ●在MAC 0Sx平台下，数据库目录位置通常为“/usr/local/mysql/data”
 * 但为了保证备份的一致性。需要保证:
 *   ●方式1:备份前，将服务器停止。
 *   ●方式2:备份前，对相关表执行 FLUSH TABLES WITH READ LOCK 操作。
 *   这样当复制数据库目录中的文件时，允许其他客户继续查询表。
 *   同时，FLUSH TABLES语句来确保开始备份前将所有激活的索引页写入硬盘。
 *
 * 这种方式方便、快速，但不是最好的备份方法，因为实际情况可能不允许停止MySQL服务器或者锁住表，
 * 而且这种方法对InnoDB存储引擎的表不适用。
 * 对于MyISAM存储引擎的表，这样备份和还原很方便，但是还原时最好是相同版本的MySQL数据库，
 * 否则可能会存在文件类型不同的情况。
 *
 * 注意，物理备份完毕后，执行 UNLOCK TABLES 来结算其他客户对表的修改行为。
 * 说明:
 * 在MySQL版本号中，第一个数字表示主版本号，主版本号相同的MySQL数据库文件格式相同。
 * 此外，还可以考虑使用相关工具实现备份。比如，MySQLhotcopy 工具。
 * MySQLhotcopy 是一个 Perl 脚本， 它使用 LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库。
 * 它是备份数据库或单个表最快的途径,
 * 但它只能运行在数据库目录所在的机器上，并且只能备份 MyISAM 类型的表。
 * 多用于mysql5.5之前。
 */
public class D_物理备份之直接复制整个数据库 {
}
